package ar.com.ctrln.control.ventas.factibilidad;

import java.util.Collection;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import ar.com.ctrln.persistence.model.cliente.Cliente;
import ar.com.ctrln.persistence.model.evento.TemaEvento;
import ar.com.ctrln.persistence.model.factibilidad.DetalleFactibilidad;
import ar.com.ctrln.persistence.model.factibilidad.Factibilidad;
import ar.com.ctrln.persistence.model.organizacion.TipoActividad;
import ar.com.ctrln.persistence.model.organizacion.TipoOrganizacion;
import ar.com.ctrln.persistence.model.persona.Direccion;
import ar.com.ctrln.persistence.model.persona.Localidad;
import ar.com.ctrln.persistence.model.persona.Provincia;
import ar.com.ctrln.persistence.model.persona.Telefono;
import ar.com.ctrln.persistence.model.servicios.TipoServicio;
import ar.com.ctrln.services.cliente.GestorCliente;
import ar.com.ctrln.services.evento.GestorTemaEvento;
import ar.com.ctrln.services.factibilidad.GestorFactibilidad;
import ar.com.ctrln.services.organizacion.GestorTipoActividad;
import ar.com.ctrln.services.organizacion.GestorTipoOrganizacion;
import ar.com.ctrln.services.persona.GestorDireccion;
import ar.com.ctrln.services.persona.GestorLocalidad;
import ar.com.ctrln.services.persona.GestorProvincia;
import ar.com.ctrln.services.persona.GestorTelefono;
import ar.com.ctrln.services.servicio.GestorServicio;

@Controller("registrarFactibilidad")
public class RegistrarFactibilidad {

	@Autowired
	private GestorFactibilidad gestorFactibilidad;

	@Autowired
	private GestorProvincia gestorProvincia;

	@Autowired
	private GestorLocalidad gestorLocalidad;

	@Autowired
	private GestorServicio gestorServicio;

	@Autowired
	private GestorTipoOrganizacion gestorTipoOrganizacion;

	@Autowired
	private GestorTipoActividad gestorTipoActividad;

	@Autowired
	private GestorTelefono gestorTelefono;

	@Autowired
	private GestorDireccion gestorDireccion;

	@Autowired
	private GestorTemaEvento gestorTemaEvento;
	
	@Autowired
	private GestorCliente gestorCliente;

	public void nuevoFactibilidad(Factibilidad factibilidad) {
		gestorFactibilidad.nueva(factibilidad);
	}

	public void nuevoDetalleFactibilidad(DetalleFactibilidad detalle) {
		gestorFactibilidad.nueva(detalle);
	}

	public TipoOrganizacion getTipoOrganizacion(String tipoCliente) {
		return gestorTipoOrganizacion.find(tipoCliente);
	}

	public List<TipoServicio> listarServicios() {
		return gestorServicio.listarTipoServicio();
	}

	public Collection<? extends Localidad> listaLocalidadPorProvincia(long id) {
		return gestorLocalidad.listarLocalidades(id);
	}

	public Collection<? extends Provincia> listaProvincias() {
		return gestorProvincia.listarProvincias();
	}

	public void guardarTelefono(Telefono telefono) {
		gestorTelefono.guardar(telefono);
	}

	public void guardarDireccion(Direccion direccion) {
		gestorDireccion.guardarDireccion(direccion);
	}

	public Collection<? extends TipoActividad> listaTipoActividad() {
		return gestorTipoActividad.listarTipoActividad();
	}

	public void nuevoTema(TemaEvento tema) {
		gestorTemaEvento.nuevo(tema);
	}

	public Cliente buscarClienteCuit(String cuit) {
		return gestorCliente.buscarCliente(cuit);
	}

}
